前言
由于机器数量有限,zk集群搭建采用单机伪集群模拟三台zk节点的方式进行搭建。
搭建环境
- jdk version 1.8.0_92(64bit)
- zookeeper version 3.4.9
- centos6.5 linux 2.6.32-431.23.3.el6.x86_64
搭建过程
新建zookeeper-cluster目录
cd /usr/local/
mkdir zookeeper-cluster下载zookeeper-3.4.9.tar.gz包
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
解压压缩包
tar -zxvf zookeeper-3.4.9.tar.gz
修改zookeeper-3.4.9文件夹名称并复制三份
mv zookeeper-3.4.9 zk-node1
cp -r zk-node1/ zk-node2/
cp -r zk-node1/ zk-node3/创建各节点数据目录和日志目录
mkdir /usr/local/zookeeper-cluster/zk-node1/data
mkdir /usr/local/zookeeper-cluster/zk-node1/log
mkdir /usr/local/zookeeper-cluster/zk-node2/data
mkdir /usr/local/zookeeper-cluster/zk-node2/log
mkdir /usr/local/zookeeper-cluster/zk-node3/data
mkdir /usr/local/zookeeper-cluster/zk-node3/log创建各节点myid文件并写入对应节点编号
echo 1 > /usr/local/zookeeper-cluster/zk-node1/data/myid
echo 2 > /usr/local/zookeeper-cluster/zk-node2/data/myid
echo 3 > /usr/local/zookeeper-cluster/zk-node3/data/myid修改各节点配置文件名称
cp zoo_sample.cfg zoo.cfg
修改各节点zoo.cfg配置
#zk-node1配置
vim /usr/local/zookeeper-cluster/zk-node1/conf/zoo.cfg
dataDir=/usr/local/zookeeper-cluster/zk-node1/data
dataLogDir=/usr/local/zookeeper-cluster/zk-node1/log
clientPort=2181
tickTime=2000
initLimit=5
syncLimit=2
server.1=127.0.0.1:1888:1999
server.2=127.0.0.1:2888:2999
server.3=127.0.0.1:3888:3999
#zk-node2配置
vim /usr/local/zookeeper-cluster/zk-node2/conf/zoo.cfg
dataDir=/usr/local/zookeeper-cluster/zk-node2/data
dataLogDir=/usr/local/zookeeper-cluster/zk-node2/log
clientPort=2182
tickTime=2000
initLimit=5
syncLimit=2
server.1=127.0.0.1:1888:1999
server.2=127.0.0.1:2888:2999
server.3=127.0.0.1:3888:3999
#zk-node3配置
vim /usr/local/zookeeper-cluster/zk-node3/conf/zoo.cfg
dataDir=/usr/local/zookeeper-cluster/zk-node3/data
dataLogDir=/usr/local/zookeeper-cluster/zk-node3/log
clientPort=2183
tickTime=2000
initLimit=5
syncLimit=2
server.1=127.0.0.1:1888:1999
server.2=127.0.0.1:2888:2999
server.3=127.0.0.1:3888:3999节点服务操作
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh start
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh stop
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh status
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh restart创建zk集群启动停止脚本
cd /usr/local/zookeeper-cluster
touch zkClusterServer.sh
#----------------------------脚本代码(开始)----------------------------#
#!/bin/bash
#author:lipan
#time:2017-02-05
#description:zk集群启动,关闭,重启脚本
start(){
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh start
echo 'zk-node1 start success...'
sleep 1
/usr/local/zookeeper-cluster/zk-node2/bin/zkServer.sh start
echo 'zk-node2 start success...'
sleep 2
/usr/local/zookeeper-cluster/zk-node3/bin/zkServer.sh start
echo 'zk-node3 start success...'
}
stop(){
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh stop
echo 'zk-node1 stop success...'
sleep 2
/usr/local/zookeeper-cluster/zk-node2/bin/zkServer.sh stop
echo 'zk-node2 stop success...'
sleep 1
/usr/local/zookeeper-cluster/zk-node3/bin/zkServer.sh stop
echo 'zk-node3 stop success...'
}
status(){
/usr/local/zookeeper-cluster/zk-node1/bin/zkServer.sh status
/usr/local/zookeeper-cluster/zk-node2/bin/zkServer.sh status
/usr/local/zookeeper-cluster/zk-node3/bin/zkServer.sh status
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 1
start
;;
*)
echo 'command is error...'
echo 'please choose right command:start|stop|status|restart.'
;;
esac
exit 0
#----------------------------脚本代码(结束)----------------------------#
赋予脚本执行权限:chmod +x zkClusterServer.shzk集群启动关闭重启操作
./zkClusterServer.sh start
./zkClusterServer.sh stop
./zkClusterServer.sh status
./zkClusterServer.sh restart集群运行状态